大家有沒有覺得,每次都要開兩個終端機才能運行python而覺得麻煩,在想有沒有一個方案可以運行一個終端而且可以看終端輸出的呢?
有,而且很簡單,請讓我一個一個來說吧
此為python內建的套件,不須從pip中安裝
此套件的功能,就是可以運行終端機的指令,例如:ls, mkdir等等的,當然,python的檔案也可以執行
程式碼:
import subprocess
subprocess.run(["ls"])
輸出效果如下
程式碼:
import subprocess
subprocess.Popen(["ls"])
輸出效果如下
你可能會想,兩個函式明明輸出結果一樣,那為什麼還要分兩個用法呢?
差別如下所示
由此可知,Popen相比run,Popen更實用,更方便
有了subprocess的幫助,我們可以在python中執行終端機的指令
那我們也需要一個可以同時執行不同函式的功能,因此有了threading,可以把它想像成,可以多執行緒。
假設我們有一個很繁忙的函式要執行一段時間,程式碼如下
import threading
import time
def process1():
arr = []
for i in range(100):
for j in range(100):
for k in range(100):
arr.append(i+j+k)
start = time.time()
process1()
process1()
process1()
process1()
end = time.time()
print("執行時間:%f 秒" % (end - start))
#output
#執行時間:0.342327 秒
使用threading後
import threading
import time
def process1():
arr = []
for i in range(100):
for j in range(100):
for k in range(100):
arr.append(i+j+k)
start = time.time()
jobs = []
jobs.append(threading.Thread(target=process1))
jobs.append(threading.Thread(target=process1))
jobs.append(threading.Thread(target=process1))
jobs.append(threading.Thread(target=process1))
for i in range(len(jobs)):
jobs[i].start()
end = time.time()
#output
#執行時間:0.168841 秒
可以發現,使用了threading後一樣的程式碼少了0.2秒左右
由此可知使用多執行緒可以幫助減少程式執行時間,增進使用體驗
https://officeguide.cc/python-measure-execution-time-tutorial-examples/